home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / printer-profile < prev    next >
Text File  |  2009-10-19  |  6KB  |  297 lines

  1. #!/bin/sh
  2.  
  3. PROGNAME="$0"
  4.  
  5. usage() {
  6.     cat <<EOF
  7. NAME
  8.     `basename $PROGNAME` - printer-profile using X-Rite ColorMunki and Argyll CMS
  9.  
  10. SYNOPSIS
  11.     `basename $PROGNAME` [options] manuf model [rgb|cmyk] [patches] [ink-limit]
  12.  
  13. DESCRIPTION
  14.     Prints a test chart, uses the ColorMunki instrument to scan it in, then
  15.     computes an ICM profile using the Argyll Color Management System.
  16.  
  17.     Manuf is "sam".  Model is "clp-300" or "clp-315".
  18.     Manuf is "hp".  Model is "2600" or "cp1215".
  19.     Manuf is "km".  Model is "1600" or "2300" or "2530".
  20.  
  21.     "rgb" is the usual setting.  "patches" is a multiple 196 per page.
  22.  
  23.     Edit the script for additional models.
  24.  
  25. OPTIONS
  26.     -b 1|2        Bits per pixel ($BPP)
  27.     -r XRESxYRES  Resolution. Default=''. ($RES)
  28.     -P rem-print  Remote print (64-bit) machine, or none ($REMPRINT)
  29.     -S rem-scan   Remote scan (ColorMunki) machine, or none ($REMSCAN)
  30.     -D lvl        Debug level
  31.  
  32. EXAMPLE
  33.     $ printer-profile sam 315 rgb 196
  34.  
  35. BUGS
  36.     gs 8.64 and before has problems with 32-bit machines and color profile
  37.     data.  Don't use!
  38.  
  39.     You need two copies of Argyll: must be 1.0.3 and 1.1.0beta. Otherwise,
  40.     targen and colprof core dumps.
  41.  
  42. SEE ALSO
  43.     http://www.xritephoto.com/html/colormunkisplash.htm
  44.     from Amazon, \$390 shipped
  45.     http://www.argyllcms.com/
  46.     free!
  47. EOF
  48.  
  49.     exit 1
  50. }
  51.  
  52. #
  53. #       Report an error and exit
  54. #
  55. error() {
  56.     echo "`basename $PROGNAME`: $1" >&2
  57.     exit 1
  58. }
  59.  
  60. debug() {
  61.     if [ $DEBUG -ge $1 ]; then
  62.         echo "`basename $PROGNAME`: $2" >&2
  63.     fi
  64. }
  65.  
  66. #
  67. #    Execute a command as root
  68. #
  69. root() {
  70.     if [ -x /usr/bin/root ]; then
  71.         /usr/bin/root $@
  72.     else
  73.         su -c "$*"
  74.     fi
  75. }
  76.  
  77. #
  78. #    trap on error
  79. #
  80. trap "exit 1" ERR
  81.  
  82. #
  83. #       Process the options
  84. #
  85. REMPRINT=amd
  86. REMSCAN=mac
  87. REMSCAN=none
  88. RGB=rgb
  89. PATCHES=196    #Per page!
  90. BPP=1
  91. RES=
  92. DEBUG=0
  93. while getopts "b:r:P:S:D:h?" opt
  94. do
  95.     case $opt in
  96.     b)    BPP="$OPTARG";;
  97.     r)    RES="$OPTARG";;
  98.     P)    REMPRINT="$OPTARG";;
  99.     S)    REMSCAN="$OPTARG";;
  100.     D)    DEBUG="$OPTARG";;
  101.     h|\?)    usage;;
  102.     esac
  103. done
  104. shift `expr $OPTIND - 1`
  105.  
  106. #
  107. #    Main Program
  108. #
  109. if [ $# -lt 2 ]; then
  110.     usage
  111. fi
  112.  
  113. MANUF="$1"
  114. MODEL="$2"
  115. if [ $# -ge 3 ]; then
  116.     RGB="$3"
  117. fi
  118. if [ $# -ge 4 ]; then
  119.     PATCHES="$4"
  120. fi
  121. INK="$5"
  122.  
  123. BPP_b="-b$BPP"
  124. RES_r=
  125. if [ "$RES" != "" ]; then
  126.     RES_r="-r$RES"
  127. fi
  128.  
  129. case "$MANUF" in
  130. km)
  131.     MANUF=km
  132.     case "$MODEL" in
  133.     *1600*)
  134.     FOO=foo2lava
  135.     WRAPPER="foo2lava-wrapper $RES_r -z2 -c -C10 -Gnone.icm"
  136.     OUT="root cp xxx.prn /dev/usb/lp1"
  137.     ;;
  138.     *2530*)
  139.     FOO=foo2lava
  140.     WRAPPER="foo2lava-wrapper $RES_r -z0 -c -C10 -Gnone.icm"
  141.     OUT="nc 192.168.1.13 9100 < xxx.prn"
  142.     ;;
  143.     *2300*)
  144.     FOO=foo2zjs
  145.     WRAPPER="foo2zjs-wrapper $RES_r -c -C10 -Gnone.icm"
  146.     OUT="nc 192.168.1.10 9100 < xxx.prn"
  147.     ;;
  148.     *)
  149.     usage
  150.     ;;
  151.     esac
  152.     ;;
  153. sam*)
  154.     MANUF=sam
  155.     FOO=foo2qpdl
  156.     case "$MODEL" in
  157.     *300*)
  158.     WRAPPER="foo2qpdl-wrapper $RES_r -z0 -c -C10 -Gnone.icm"
  159.     OUT="nc 192.168.1.11 9100 < xxx.prn"
  160.     ;;
  161.     *315*)
  162.     WRAPPER="foo2qpdl-wrapper $RES_r -z2 -c -C10 -Gnone.icm"
  163.     OUT="root cp xxx.prn /dev/usb/lp1"
  164.     ;;
  165.     *)
  166.     usage
  167.     ;;
  168.     esac
  169.     ;;
  170. hp*)
  171.     MANUF=hp
  172.     FOO=foo2hp
  173.     case "$MODEL" in
  174.     *2600*)
  175.     WRAPPER="foo2hp2600-wrapper $RES_r $BPP_b -z0 -c -C10 -Gnone.icm"
  176.     OUT="nc 192.168.1.12 9100 < xxx.prn"
  177.     ;;
  178.     *cp1215*)
  179.     WRAPPER="foo2hp2600-wrapper $RES_r $BPP_b -z1 -c -C10 -Gnone.icm"
  180.     OUT="root cp xxx.prn /dev/usb/lp2"
  181.     ;;
  182.     *)
  183.     usage
  184.     ;;
  185.     esac
  186.     ;;
  187. *)
  188.     usage
  189.     ;;
  190. esac
  191.  
  192. mrp="$MANUF-$MODEL-$RGB-$PATCHES"
  193. if [ "$INK" != "" ]; then
  194.     mrp="$mrp-ink$INK"
  195. fi
  196. if [ "$BPP" != "" ]; then
  197.     mrp="$mrp-bpp$BPP"
  198. fi
  199. if [ "$RES" != "" ]; then
  200.     mrp="$mrp-$RES"
  201. fi
  202. echo "$mrp"
  203.  
  204.  
  205. BETABIN=~/src/Argyll_V1.1.0_Beta/bin
  206. if [ ! -x $BETABIN/printtarg ]; then
  207.     error "No beta bin in $BETABIN!"
  208. fi
  209.  
  210. targen_opts=
  211. case "$RGB" in
  212. rgb|RGB)    targen_opts="$targen_opts -d3";;
  213. cmyk|CMYK)    targen_opts="$targen_opts -d4";;
  214. *)        error "Parm2: Must be rgb or cmyk";;
  215. esac
  216.  
  217. targen_opts="$targen_opts -f$PATCHES"
  218.  
  219. if [ "$INK" != "" ]; then
  220.     targen_opts="$targen_opts -l$INK"
  221. fi
  222.  
  223. echo
  224. echo "******************************** targen ********************************"
  225. echo "targen $targen_opts $mrp"
  226. if ! targen $targen_opts $mrp >$mrp.err1; then
  227.     cat $mrp.err1
  228.     exit 1
  229. fi
  230.  
  231. echo
  232. echo "******************************* printtarg ******************************"
  233. echo "$BETABIN/printtarg -h -v -iCM -p Letter -R0 $mrp"
  234. $BETABIN/printtarg -h -v -iCM -p Letter -R0 $mrp
  235.  
  236. evince $mrp.ps &
  237.  
  238. echo
  239. echo "******************************* print it *******************************"
  240. echo "$WRAPPER"
  241. case "$REMPRINT" in
  242. ''|none)
  243.     $WRAPPER <$mrp.ps >$mrp.prn
  244.     ;;
  245. *)
  246.     ssh $REMPRINT "$WRAPPER" <$mrp.ps >$mrp.prn
  247.     ;;
  248. esac
  249. ls -l $mrp.prn
  250. echo -n "Print it? [y|n]? "
  251. read yes
  252. case "$yes" in
  253. y|Y)
  254.     cp $mrp.prn xxx.prn
  255.     echo "    $OUT"
  256.     eval $OUT
  257.     rm -f xxx.prn
  258. esac
  259.  
  260. echo
  261. echo "******************************* chartread ******************************"
  262. case "$REMSCAN" in
  263. ''|none)
  264.     echo "$BETABIN/chartread $mrp"
  265.     $BETABIN/chartread $mrp
  266.     ;;
  267. *)
  268.     echo "scp $mrp.ti2 mac:"
  269.     scp $mrp.ti2 mac:
  270.     echo "$BETABIN/chartread $mrp"
  271.     echo  -n "Scanned on remote system $REMSCAN? [y/n]? "
  272.     read yes
  273.     case "$yes" in
  274.     y|Y)
  275.     scp $REMSCAN:$mrp.ti3 .
  276.     ;;
  277.     esac
  278.     ;;
  279. esac
  280.  
  281. echo
  282. echo "******************************** colprof *******************************"
  283. case $RGB in
  284. rgb)
  285.     echo "colprof -v -D\"$mrp\" -qm -cmt -dpp $mrp"
  286.     colprof -v -D"$mrp" -qm -cmt -dpp $mrp
  287.     ;;
  288. cymk)
  289.     echo "colprof -v -D\"$mrp\" -qm  -cmt -dpp -kr $mrp"
  290.     colprof -v -D"$mrp" -qm  -cmt -dpp -kr $mrp
  291.     ;;
  292. esac
  293.  
  294. root cp $mrp.icc /usr/share/$FOO/icm/testing.icm
  295. echo "/usr/share/$FOO/icm/testing.icm created!"
  296. ls -l /usr/share/$FOO/icm/
  297.